/**
 * @params {compiler} Object
 * 1、真正的监听webpack编译
 * 2、返回一个express文件用来预览产出的资源文件 ==>可以预览
 *  */
const fs = require('fs') //读写硬盘的操作
const MemoryFileSystem  = require('memory-fs');
const memoryFileSystem = new MemoryFileSystem()
const middleware = require('./middleware.js')
function webpackDevMiddleware(compiler) {
    compiler.watch({},(obj)=>{
        console.log('监听到文件的变化了',obj)
    })
    // let fs = compiler.outputFileSystem = memoryFileSystem //导致文件编译的比较慢的原因，因为全部把文件读出来然后放到内存中去，因此编译的时候会比较慢。webpack5中添加了硬缓存处理这个问题
    // console.log(fs, 'fs')
    // console.log(MemoryFileSystem, 'MemoryFileSystem')
    //产出的文件是在内存中的，没有存在硬盘上（目的为了提高性能）
    return middleware({ 
        fs,
        outputPath: compiler.options.output.path, //写入到哪个目录
    })
}
module.exports = webpackDevMiddleware